import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'

//应用插件——目的：让所有的vc，及vm身上都多了一个$store
Vue.use(Vuex)

//用于响应组件中的动作（服务员）
const actions = {
	//响应组件中加的动作
	/* jia({commit},value){
		//联系mutations中对应的函数（厨师）
		commit('JIA',value)
	}, */
	//响应组件中减的动作
	/* jian({commit},value){
		//联系mutations中对应的函数（厨师）
		commit('JIAN',value)
	} */
	//奇数再加（有意义的action）
	jiJia({commit,state},value){
		//奇偶数判断
		if(state.sum % 2){
			//联系mutations中对应的函数（厨师）
			commit('JIA',value)
		}
	},
	//等一等再加（有意义的action）
	DengJia({commit},value){
		setTimeout(()=>{
			commit('JIA',value)
		},1000)
	},
	//联系服务器看看加几（带有网络请求的action）
	async fuJia ({commit}) {
		try {
			const result = await axios.get('https://api.uixsj.cn/hitokoto/get?type=social')
			console.log(result.data)
			commit('JIA',result.data.length)
		} catch (error) {
			alert(error)
		}
	}
}
//用于修改数据（厨师）
const mutations = {
	//执行加
	JIA(state,value){
		state.sum += value
	},
	//执行减
	JIAN(state,value){
		state.sum -= value
	}
}
//存储着数据（原材料）
const state = {
	sum:1,
	school:'atguigu',
	subject:'前端',
	address:'北京昌平宏福科技园'
}
//计算行为（加工器）
const getters = {
	bigSum(state){
		return state.sum * 10
	},
	miniAddress(state){
		return state.address.slice(0,4)
	},
	upSchool(state){
		return state.school.toUpperCase()
	}
}

//创建一个store
const store = new Vuex.Store({
	actions,
	mutations,
	state,
	getters
})

//暴露store
export default store